package cn.wolfcode.luowowo.hotel.mapper;

import cn.wolfcode.luowowo.hotel.domain.HotelOrder;
import cn.wolfcode.luowowo.hotel.query.HotelQueryObject;
import cn.wolfcode.luowowo.hotel.vo.HotelOrderVo;

import java.util.List;
import java.util.Map;

public interface HotelOrderMapper {
    int deleteByPrimaryKey(Long id);

    int insert(HotelOrder record);

    HotelOrder selectByPrimaryKey(Long id);

    List<HotelOrder> selectAll();

    int updateByPrimaryKey(HotelOrder record);

    /**
     * 查询当前酒店订购出去的房间
     *
     * @param qo
     * @return 返回一个指定时间内各种类型房间的订购数量
     */
    List<Map<String, Object>> selectOrderGroupBy(HotelQueryObject qo);

    /**
     * 添加酒店订单
     *
     * @param vo 酒店订单信息vo
     */
    void addOrder(HotelOrderVo vo);

    /**
     * 根据用户的编号查询用户的酒店订单信息
     *
     * @param userId 用户编号
     * @return 返回酒店订单列表
     */
    List<HotelOrder> selectUserHotelOrderByUserId(Long userId);
}